// Copyright (C) 2003-2009 by Object Mentor, Inc. All rights reserved.
// Released under the terms of the CPL Common Public License version 1.0.
package fit.decorator.util;

import java.awt.Point;

public class ClassDelegatePointParser {
	public static Point parse(String s) {
		// format = (xxxx,yyyyy)
		validateFormat(s);
		int indexOfOpenParanthesis = 0;
		int indexOfComma = s.indexOf(",");
		int indexOfClosingParanthesis = s.length() - 1;
		int x = Integer.parseInt(substring(s, indexOfOpenParanthesis,
				indexOfComma));
		int y = Integer.parseInt(substring(s, indexOfComma,
				indexOfClosingParanthesis));
		return new Point(x, y);
	}

	private static void validateFormat(String s) {
		if ("(x,y)".length() > s.length() || !s.contains("(")
				|| !s.contains(",") || !s.contains(")")) {
			throw new IllegalArgumentException(s
					+ " is not a valid format. (x,y) is the correct format");
		}
	}

	private static String substring(String s, int startingIndex, int endingIndex) {
		return s.substring(startingIndex + 1, endingIndex);
	}

}
